listing root directory
am 26.01.2008 20:09:39 von Dan Gelder
I'm trying to write a script that shows a file picker for my whole web
site. The only part I have left to do is making the script start at
the root directory (my public_html folder). I've messed with
chdir($_SERVER['DOCUMENT_ROOT']) for example but I just can't seem to
get a handle to the top level directory.
Thanks
Dan
Re: listing root directory
am 26.01.2008 21:25:57 von Dan Gelder
Never mind the last question, I got it. Now I have another problem:
When i include a php script in another php file, I'd like to put some
img tags inline along with it. The images are in the same file as the
script I'm including. If I get __FILE__ inside my script (which is the
only way I can find to get the actual script file) then how can I
munge the result to turn
/home/.machine/user/site.com/work/january/phpstuff/includer. php
into just
/work/january/phpstuff/
So I can end up with
in the
echo'd result?
I know I can hardcode it but I'd rather not, I'd rather just have it
work.
Thanks
Dan
Re: listing root directory
am 26.01.2008 22:28:51 von Kailash Nadh
On Jan 26, 8:25 pm, Dan Gelder wrote:
> Never mind the last question, I got it. Now I have another problem:
>
> When i include a php script in another php file, I'd like to put some
> img tags inline along with it. The images are in the same file as the
> script I'm including. If I get __FILE__ inside my script (which is the
> only way I can find to get the actual script file) then how can I
> munge the result to turn
>
> /home/.machine/user/site.com/work/january/phpstuff/includer. php
>
> into just
>
> /work/january/phpstuff/
>
> So I can end up with
>
> in the
> echo'd result?
>
> I know I can hardcode it but I'd rather not, I'd rather just have it
> work.
>
> Thanks
> Dan
$dir = dirname(__FILE__);
--
Kailash Nadh | http://kailashnadh.name
Re: listing root directory
am 27.01.2008 02:32:36 von Dan Gelder
On Jan 26, 4:28=A0pm, Kailash Nadh wrote:
> On Jan 26, 8:25 pm, Dan Gelder wrote:
>
>
>
>
>
> > Never mind the last question, I got it. Now I have another problem:
>
> > When i include a php script in another php file, I'd like to put some
> > img tags inline along with it. The images are in the same file as the
> > script I'm including. If I get __FILE__ inside my script (which is the
> > only way I can find to get the actual script file) then how can I
> > munge the result to turn
>
> > /home/.machine/user/site.com/work/january/phpstuff/includer. php
>
> > into just
>
> > /work/january/phpstuff/
>
> > So I can end up with
>
> > in the
> > echo'd result?
>
> > I know I can hardcode it but I'd rather not, I'd rather just have it
> > work.
>
> > Thanks
> > Dan
>
> $dir =3D dirname(__FILE__);
>
> --
> Kailash Nadh |http://kailashnadh.name- Hide quoted text -
>
> - Show quoted text -
Thanks for that guess but no, that just turns
/home/.machine/user/site.com/work/january/phpstuff/includer. php
into
/home/.machine/user/site.com/work/january/phpstuff/
and you can read my post to understand why that brings me no closer
than before.
What I need to know, I guess, is a way to get the official root folder
so I have
/home/.machine/user/site.com/
And then I can match the strings?? Can't say how to solve it yet.
Re: listing root directory
am 27.01.2008 02:46:13 von Sebastian Lisken
Dan Gelder wrote:
> no, that just turns
> /home/.machine/user/site.com/work/january/phpstuff/includer. php
> into
> /home/.machine/user/site.com/work/january/phpstuff/
>
> and you can read my post to understand why that brings me no closer
> than before.
>
> What I need to know, I guess, is a way to get the official root folder
> so I have
> /home/.machine/user/site.com/
>
> And then I can match the strings?? Can't say how to solve it yet.
Wouldn't $_SERVER["SCRIPT_NAME"] do what you are looking for? Don't use
$_SERVER["PHP_SELF"] because that can contain so-called "additional path
information" that users could be adding to the script's URL in some
circumstances (/january/phpstuff/includer.php/extra/stuff) and which,
incidentally, makes $_SERVER["PHP_SELF"] a value that should not be
trusted. Mind you, perhaps it's better to regard all of $SERVER as
untrusted just to err on the side of caution.
Sebastian Lisken
Re: listing root directory
am 27.01.2008 03:08:15 von Dan Gelder
On Jan 26, 8:46=A0pm, Sebastian Lisken
deletethis.de> wrote:
> Dan Gelder =A0 wrote:
>
> > no, that just turns
> > /home/.machine/user/site.com/work/january/phpstuff/includer. php
> > into
> > /home/.machine/user/site.com/work/january/phpstuff/
>
> > and you can read my post to understand why that brings me no closer
> > than before.
>
> > What I need to know, I guess, is a way to get the official root folder
> > so I have
> > /home/.machine/user/site.com/
>
> > And then I can match the strings?? Can't say how to solve it yet.
>
> Wouldn't $_SERVER["SCRIPT_NAME"] do what you are looking for? Don't use
> $_SERVER["PHP_SELF"] because that can contain so-called "additional path
> information" that users could be adding to the script's URL in some
> circumstances (/january/phpstuff/includer.php/extra/stuff) and which,
> incidentally, makes $_SERVER["PHP_SELF"] a value that should not be
> trusted. Mind you, perhaps it's better to regard all of $SERVER as
> untrusted just to err on the side of caution.
>
> Sebastian Lisken
I know not to trust $_SERVER too far, but it doesn't matter, because I
am interested in finding the *included file*'s location, not the base
script. IE:
------
------ folder1/file1.php:
------
echo "Here is an image from another folder:";
include '/folder2/file2.php';
------
------ folder2/file2.php:
------
function getGlobalPrefix()
{
//this is what I need to write:
//it takes the data in __FILE__ and somehow turns that into 'http://
mySite.com/folder2/'
}
echo "";
------
OK, does it make sense now?? :-)
Dan
Re: listing root directory
am 27.01.2008 17:01:55 von AnrDaemon
Greetings, Dan Gelder.
In reply to Your message dated Sunday, January 27, 2008, 05:08:15,
>> > no, that just turns
>> > /home/.machine/user/site.com/work/january/phpstuff/includer. php
>> > into
>> > /home/.machine/user/site.com/work/january/phpstuff/
>>
>> > and you can read my post to understand why that brings me no closer
>> > than before.
>>
>> > What I need to know, I guess, is a way to get the official root folder
>> > so I have
>> > /home/.machine/user/site.com/
>>
>> > And then I can match the strings?? Can't say how to solve it yet.
>>
>> Wouldn't $_SERVER["SCRIPT_NAME"] do what you are looking for? Don't use
>> $_SERVER["PHP_SELF"] because that can contain so-called "additional path
>> information" that users could be adding to the script's URL in some
>> circumstances (/january/phpstuff/includer.php/extra/stuff) and which,
>> incidentally, makes $_SERVER["PHP_SELF"] a value that should not be
>> trusted. Mind you, perhaps it's better to regard all of $SERVER as
>> untrusted just to err on the side of caution.
>>
>> Sebastian Lisken
> I know not to trust $_SERVER too far, but it doesn't matter, because I
> am interested in finding the *included file*'s location, not the base
> script. IE:
> ------
> ------ folder1/file1.php:
> ------
> echo "Here is an image from another folder:";
> include '/folder2/file2.php';
> ------
> ------ folder2/file2.php:
> ------
> function getGlobalPrefix()
> {
> //this is what I need to write:
> //it takes the data in __FILE__ and somehow turns that into 'http://
> mySite.com/folder2/'
> }
> echo "";
> ------
> OK, does it make sense now?? :-)
You has an advice but don't get it right.
$dir = dirname(__FILE__); // current script location
if(stripos($_SERVER['DOCUMENT_ROOT'], $dir) === 0)
{
$dir = substr($dir, strlen($_SERVER['DOCUMENT_ROOT']));
echo("");
}
--
Sincerely Yours, AnrDaemon